package com.itheima.clientAndService01;

import java.io.File;
import java.util.HashMap;

public class FileClass06 {
    public static void main(String[] args) {
        File file = new File("day11\\");
        HashMap<String,Integer> map = new HashMap();
        getCount(file,map);
        System.out.println(map);
    }

    private static void getCount(File file, HashMap<String,Integer> map) {
        File[] files = file.listFiles();
        //遍历文件对象数组中的所有对象
        for (File f : files) {
            //先进行判断，对象是否为文件
            if (f.isFile()) {
                //是文件对象，则拿到其文件名
                String fileName = f.getName();
                //将文件名用“.”来切割，获得数组
                String[] fileNameArr = fileName.split("\\.");
                //如果数组长度为2的话，则进行操作，文件名切割后数组长度不为2，则不管
                if (fileNameArr.length == 2){
                    //拿到每个数组的最后面的元素，也就是文件类型
                    String fileEndName = fileNameArr[1];
                    //判断集合中是否包含fileEndName
                    if (map.containsKey(fileEndName)){
                        //如果包含，则拿到对应的值，将其加1
                        Integer count = map.get(fileEndName);
                        count++;
                        //将更改后的键值重新添加覆盖
                        map.put(fileEndName,count);
                    }else {
                        //如果不存在，则给集合中加入，键和值
                        map.put(fileEndName,1);
                    }
                }
            }else {//是文件夹则进行迭代操作
                getCount(f,map);
            }
        }
    }
}
